import { streamText, convertToModelMessages } from 'ai';
import { createDeepSeek } from '@ai-sdk/deepseek';

// 普通对话接口：标准的 POST 请求处理
export async function POST(req: Request) {
  try {
    const { messages } = await req.json();
    
    console.log('📨 普通对话模式收到请求');

    const deepseek = createDeepSeek({
      apiKey: process.env.AI_GATEWAY_API_KEY
    });

    const result = await streamText({
      model: deepseek('deepseek-chat'),
      messages: convertToModelMessages(messages),
    });

    // 将 Vercel AI SDK 的流式输出转换为统一格式（与 RAG 一致）
    const encoder = new TextEncoder();
    const stream = new ReadableStream({
      async start(controller) {
        try {
          for await (const chunk of result.textStream) {
            // 使用与 RAG 相同的格式：0:"text"
            const data = `0:${JSON.stringify(chunk)}\n`;
            controller.enqueue(encoder.encode(data));
          }
          controller.close();
        } catch (error) {
          console.error('流式输出错误:', error);
          controller.error(error);
        }
      },
    });

    return new Response(stream, {
      headers: {
        'Content-Type': 'text/plain; charset=utf-8',
        'X-Vercel-AI-Data-Stream': 'v1',
      },
    });
  } catch (error) {
    console.error('普通对话处理失败:', error);
    return new Response(JSON.stringify({ error: '普通对话处理失败' }), {
      status: 500,
      headers: { 'Content-Type': 'application/json' },
    });
  }
}
